package mx.ipn.presentacion;

import com.trolltech.qt.gui.*;
import com.trolltech.qt.core.*;

import mx.ipn.to.*;

public class Utilerias {
	
	// centra la ventana dependiendo de la resolucion del monitor
	public static void centrarVentana(QWidget ventana) {
		QRect geometria = ventana.geometry();

		ventana
				.setGeometry((QApplication.desktop().width() / 2)
						- geometria.width() / 2, (QApplication.desktop()
						.height() / 2)
						- geometria.height() / 2, geometria.width(), geometria
						.height());
	}

	// centra un dialogo
	public static void centrarVentana(QDialog dialogo) {
		QRect geometria = dialogo.geometry();

		dialogo
				.setGeometry((QApplication.desktop().width() / 2)
						- geometria.width() / 2, (QApplication.desktop()
						.height() / 2)
						- geometria.height() / 2, geometria.width(), geometria
						.height());
	}
	
	// muestra un mensaje de error mandado por la capa d negocios
	public static int mostrarMensajeError(QWidget ventana, TransferObject to) {
		int regreso = 0;
		switch (to.getTipoError()) {
		case 1:
			QMessageBox.critical(ventana, to.getDescTipoError(), to.getError(),
					QMessageBox.StandardButton.Ok,
					QMessageBox.StandardButton.Ok);
			break;
		case 2:
			QMessageBox.warning(ventana, to.getDescTipoError(), to.getError(),
					QMessageBox.StandardButton.Ok,
					QMessageBox.StandardButton.Ok);
			break;
		case 3:
			QMessageBox.information(ventana, to.getDescTipoError(), to
					.getError(), QMessageBox.StandardButton.Ok,
					QMessageBox.StandardButton.Ok);
			break;
		case 4:
			// el boton yes regresa el valor 16384
			// el boton no regresa el valor 65536
			regreso = QMessageBox.warning(ventana, to.getDescTipoError(), to
					.getError(), QMessageBox.StandardButton.Yes,
					QMessageBox.StandardButton.No);
			break;
		}
		return regreso;
	}
	
	// para cambiar de un QDateTime a un java.util.Date
	public static java.util.Date toDate(QDateTime date) {
		return new java.util.Date((long)date.toTime_t()*1000);
	}
}
